package com.jielin.handling.Annotation;

import java.lang.annotation.*;


/**
 * @Target说明了Annotation所修饰的对象范围：Annotation可被用于
 * packages、types（类、接口、枚举、Annotation类型）、
 * 类型成员（方法、构造方法、成员变量、枚举值）、方法参数和本地变量（如循环变量、catch参数）。
 * 在Annotation类型的声明中使用了target可更加明晰其修饰的目标。
 *
 * 　　作用：用于描述注解的使用范围（即：被描述的注解可以用在什么地方）
 *
 * 　　取值(ElementType)有：
 *
 * 　　　　1.CONSTRUCTOR:用于描述构造器
 * 　　　　2.FIELD:用于描述域
 * 　　　　3.LOCAL_VARIABLE:用于描述局部变量
 * 　　　　4.METHOD:用于描述方法
 * 　　　　5.PACKAGE:用于描述包
 * 　　　　6.PARAMETER:用于描述参数
 * 　　　　7.TYPE:用于描述类、接口(包括注解类型) 或enum声明
 */
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE,ElementType.METHOD})
@Documented
public @interface MyPower {

    String name();// 名字

    int type() default 1;// 类型 方法1  类0

    boolean isPublic() default false;// 是否是公共

    String url() default "";// 路径  RequestMapper类  RequestMapper方法
}
